Skip to content

Conversation

cjgillot
Copy link
Contributor

r? @ghost

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 13, 2025
@rust-log-analyzer

This comment was marked as outdated.

@cjgillot cjgillot force-pushed the optimized-generator branch from 08f1ddf to 0be736b Compare August 13, 2025 02:16
@rust-log-analyzer

This comment has been minimized.

@cjgillot
Copy link
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Aug 13, 2025
[TOY] Run MIR opts before coroutine state transform
@rust-bors
Copy link

rust-bors bot commented Aug 13, 2025

☀️ Try build successful (CI)
Build commit: b6ae10a (b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b, parent: 350d0ef0ec0493e6d21cfb265cb8211a0e74d766)

@cjgillot
Copy link
Contributor Author

@rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Aug 13, 2025
@lqd
Copy link
Member

lqd commented Aug 13, 2025

@rust-timer build b6ae10a

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (b6ae10a): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.2% [0.2%, 0.3%] 3
Regressions ❌
(secondary)
3.0% [0.5%, 8.5%] 8
Improvements ✅
(primary)
-0.3% [-1.2%, -0.1%] 11
Improvements ✅
(secondary)
-1.6% [-4.4%, -0.2%] 16
All ❌✅ (primary) -0.2% [-1.2%, 0.3%] 14

Max RSS (memory usage)

Results (primary -2.4%, secondary 0.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.0% [0.9%, 1.1%] 2
Regressions ❌
(secondary)
2.3% [1.5%, 2.9%] 4
Improvements ✅
(primary)
-9.2% [-9.2%, -9.2%] 1
Improvements ✅
(secondary)
-2.5% [-2.5%, -2.4%] 2
All ❌✅ (primary) -2.4% [-9.2%, 1.1%] 3

Cycles

Results (secondary -0.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
4.1% [2.0%, 5.3%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.9% [-4.1%, -1.6%] 6
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.0%, secondary 2.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.1%] 4
Regressions ❌
(secondary)
6.4% [0.1%, 18.3%] 18
Improvements ✅
(primary)
-0.0% [-0.0%, -0.0%] 6
Improvements ✅
(secondary)
-0.4% [-6.3%, -0.0%] 19
All ❌✅ (primary) 0.0% [-0.0%, 0.1%] 10

Bootstrap: 468.291s -> 467.628s (-0.14%)
Artifact size: 377.36 MiB -> 377.38 MiB (0.00%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Aug 13, 2025
@bors
Copy link
Collaborator

bors commented Aug 20, 2025

☔ The latest upstream changes (presumably #145600) made this pull request unmergeable. Please resolve the merge conflicts.

@cjgillot cjgillot force-pushed the optimized-generator branch from 0be736b to dea9eb7 Compare August 20, 2025 00:30
@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Aug 27, 2025

☔ The latest upstream changes (presumably #145916) made this pull request unmergeable. Please resolve the merge conflicts.

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-19-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [crashes] tests/crashes/117696-1.rs ... ok
test [crashes] tests/crashes/121963.rs ... ok
test [crashes] tests/crashes/122259.rs ... ok
test [crashes] tests/crashes/122529.rs ... ok
2025-09-16T02:11:59.464970Z ERROR compiletest::runtest: fatal error, panic: "crashtest no longer crashes/triggers ICE, hooray! Please give it a meaningful name, add a doc-comment to the start of the test explaining why it exists and move it to tests/ui or wherever you see fit. Adding 'Fixes #<issueNr>' to your PR description ensures that the corresponding ticket is auto-closed upon merge. If you want to see verbose output, set `COMPILETEST_VERBOSE_CRASHES=1`."
test [crashes] tests/crashes/122681.rs ... ok
test [crashes] tests/crashes/122630.rs ... FAILED
test [crashes] tests/crashes/122710.rs ... ok
test [crashes] tests/crashes/122903-1.rs ... ok
test [crashes] tests/crashes/122904-2.rs ... ok
---

---- [crashes] tests/crashes/122630.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
error[E0407]: method `move_before_yield_with_noop` is not a member of trait `Drop`
##[error]  --> /checkout/tests/crashes/122630.rs:10:5
   |
10 |     fn move_before_yield_with_noop() -> impl Coroutine<Yield = ()> {}
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `Drop`

error[E0658]: yield syntax is experimental
##[error]  --> /checkout/tests/crashes/122630.rs:16:9
   |
---
   = note: see issue #43122 <https://github.com/rust-lang/rust/issues/43122> for more information
   = help: add `#![feature(yield_expr)]` to the crate attributes to enable
   = note: this compiler was built on 2025-09-16; consider upgrading it if it is out of date

error: `yield` can only be used in `#[coroutine]` closures, or `gen` blocks
##[error]  --> /checkout/tests/crashes/122630.rs:16:9
   |
16 |         yield;
   |         ^^^^^
   |
help: use `#[coroutine]` to make this closure a coroutine
---

error[E0658]: use of unstable library feature `coroutine_trait`
##[error]  --> /checkout/tests/crashes/122630.rs:13:34
   |
13 | fn overlap_move_points() -> impl Coroutine<Yield = ()> {
   |                                  ^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #43122 <https://github.com/rust-lang/rust/issues/43122> for more information
   = help: add `#![feature(coroutine_trait)]` to the crate attributes to enable
   = note: this compiler was built on 2025-09-16; consider upgrading it if it is out of date

error[E0658]: use of unstable library feature `coroutine_trait`
##[error]  --> /checkout/tests/crashes/122630.rs:10:46
   |
10 |     fn move_before_yield_with_noop() -> impl Coroutine<Yield = ()> {}
   |                                              ^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #43122 <https://github.com/rust-lang/rust/issues/43122> for more information
   = help: add `#![feature(coroutine_trait)]` to the crate attributes to enable
   = note: this compiler was built on 2025-09-16; consider upgrading it if it is out of date
---

error[E0658]: use of unstable library feature `coroutine_trait`
##[error]  --> /checkout/tests/crashes/122630.rs:13:44
   |
13 | fn overlap_move_points() -> impl Coroutine<Yield = ()> {
   |                                            ^^^^^^^^^^
   |
   = note: see issue #43122 <https://github.com/rust-lang/rust/issues/43122> for more information
   = help: add `#![feature(coroutine_trait)]` to the crate attributes to enable
   = note: this compiler was built on 2025-09-16; consider upgrading it if it is out of date

error[E0658]: use of unstable library feature `coroutine_trait`
##[error]  --> /checkout/tests/crashes/122630.rs:10:56
   |
10 |     fn move_before_yield_with_noop() -> impl Coroutine<Yield = ()> {}
   |                                                        ^^^^^^^^^^
   |
   = note: see issue #43122 <https://github.com/rust-lang/rust/issues/43122> for more information
   = help: add `#![feature(coroutine_trait)]` to the crate attributes to enable
   = note: this compiler was built on 2025-09-16; consider upgrading it if it is out of date

error[E0277]: the trait bound `(): Coroutine` is not satisfied
##[error]  --> /checkout/tests/crashes/122630.rs:10:41
   |
10 |     fn move_before_yield_with_noop() -> impl Coroutine<Yield = ()> {}
   |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Coroutine` is not implemented for `()`

warning: unused variable: `second`
##[warning]  --> /checkout/tests/crashes/122630.rs:17:13
   |
17 |         let second = first;
---

error[E0382]: use of moved value: `first`
##[error]  --> /checkout/tests/crashes/122630.rs:19:22
   |
15 |         let first = Foo([0; FOO_SIZE]);
   |             ----- move occurs because `first` has type `Foo`, which does not implement the `Copy` trait
16 |         yield;
17 |         let second = first;
   |                      ----- value moved here
18 |         yield;
19 |         let second = first;
   |                      ^^^^^ value used here after move
   |
note: if `Foo` implemented `Clone`, you could clone the value
  --> /checkout/tests/crashes/122630.rs:7:1
   |
 7 | struct Foo([u8; FOO_SIZE]);
   | ^^^^^^^^^^ consider implementing `Clone` for this type
...
17 |         let second = first;
   |                      ----- you could clone this value

error: aborting due to 18 previous errors; 2 warnings emitted

Some errors have detailed explanations: E0046, E0277, E0382, E0407, E0601, E0658.
For more information about an error, try `rustc --explain E0046`.

------------------------------------------

error: crashtest no longer crashes/triggers ICE, hooray! Please give it a meaningful name, add a doc-comment to the start of the test explaining why it exists and move it to tests/ui or wherever you see fit. Adding 'Fixes #<issueNr>' to your PR description ensures that the corresponding ticket is auto-closed upon merge. If you want to see verbose output, set `COMPILETEST_VERBOSE_CRASHES=1`.

thread '[crashes] tests/crashes/122630.rs' panicked at src/tools/compiletest/src/runtest/crashes.rs:17:18:
fatal error
stack backtrace:
   8: __rustc::rust_begin_unwind

@bors
Copy link
Collaborator

bors commented Sep 17, 2025

☔ The latest upstream changes (presumably #146666) made this pull request unmergeable. Please resolve the merge conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
perf-regression Performance regression. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants